#通信
'''
 面向对象的特征
 抽象 抽取的形象 提取的共同形象，人在不断的定义的新的类（产生新的父类和子类），提取共同的特征（特征数值）和行为产生新的类
 封装  封闭 装入 将定义的一堆特征用类的名字封起来，需要访问的时候，只能一次访问一个，打开箱子只拿一个
 继承  儿女可以继承父母的物品的使用权和所有权，父类定义的变量和方法 子类可以使用
 多态
'''
class Bird:
    wingsno=2
    legsno=2
class Duck(Bird):
    swimmingSpeed=0 #游泳的速度
class Chicken(Bird):
    digPower=0 #刨地的地量
duck=Duck
print("鸭子有"+str(duck.legsno)+"条腿")
chicken=Chicken
print("鸡有"+str(chicken.legsno)+"条腿")

class Traffic:
    speed=0
    price=0
class Bike(Traffic):
    lockState=''
    wheelState=''
class Car(Traffic):
    soilState=''
class Plane(Traffic):
    startTime=''
# 父类是手机  子类是老年手机 儿童手机
import math
class Phone:
    price=0
    brand=''
    batteryVolume=100
    # 功能 = 方法  = 函数  = 过程
    def playGame(self,duringTime):
        print("用手机打游戏")
        self.batteryVolume =  self.batteryVolume - (duringTime * 3) #self.batteryVolume 当前手机对象的电量 打游戏消耗电
    def call(self,duringTime):
        print("用手机打电话")
        self. batteryVolume =  self.batteryVolume - math.ceil(duringTime * 0.6)  # 打游戏消耗电
    def charge(self, duringTime):
        print("充电")
        if self.batteryVolume + math.ceil(duringTime * 30) >= 100:
            self.batteryVolume = 100
        else:
            self.batteryVolume = self.batteryVolume + math.ceil(duringTime * 30)  # 打游戏消耗电
phone=Phone()  #得到一部手机
phone.playGame(2)  #用手机打游戏一次 = 用手机调用打游戏函数一次
print(phone.batteryVolume)
phone.playGame(1)
print(phone.batteryVolume)
phone.playGame(20)
print(phone.batteryVolume)
phone.call(3)
print(phone.batteryVolume)
phone.charge(2)
print(phone.batteryVolume)


class ChildrenPhone(Phone):
    locationIsOpen=True; #定位同步给家长是否开启
class ElderPhone(Phone):
    fontEnlarge=True; #字体放大是否开启






